package com.quanyan.pay.api.wechat.vo;

import com.quanyan.common.utils.StringUtil;
import com.quanyan.pay.enums.WxCheckNameEnum;
import com.quanyan.pay.enums.WxRefundAccountEnum;
import com.quanyan.pay.vo.WxBaseReqVo;
import com.thoughtworks.xstream.annotations.XStreamAlias;

import javax.validation.constraints.NotNull;

/**
 * Created by Zheng.Ke
 * Date 2017/2/15.
 * 具体参见文档 https://pay.weixin.qq.com/wiki/doc/api/tools/mch_pay.php?chapter=14_2
 */
@XStreamAlias("xml")
public class WxTransfersReqVo extends WxBaseReqVo {
    /** 公众账号appid */
    @NotNull
    private String mch_appid;
    /** 商户号 */
    @NotNull
    private String mchid;
    /** 证书数据 */
    @NotNull
    private byte[] certData;
    /** 证书密码 */
    @NotNull
    private String certPasswd;
    /** 设备号 */
    private String device_info;
    /** 随机字符串  */
    private String nonce_str = StringUtil.genRandomCode(32, false).toUpperCase();
    /** 商户订单号 */
    @NotNull
    private String partner_trade_no;
    /** 用户openid */
    @NotNull
    private String openid;
    /** 校验用户姓名选项 */
    @NotNull
    private WxCheckNameEnum check_name;
    /** 收款用户姓名 */
    private String re_user_name;
    /** 金额(单位为分) */
    @NotNull
    private Integer amount;
    /** 企业付款描述信息 */
    @NotNull
    private String desc;
    /** Ip地址  */
    @NotNull
    private String spbill_create_ip;

    public String getMch_appid() {
        return mch_appid;
    }

    public void setMch_appid(String mch_appid) {
        this.mch_appid = mch_appid;
    }

    public String getMchid() {
        return mchid;
    }

    public void setMchid(String mchid) {
        this.mchid = mchid;
    }

    public byte[] getCertData() {
        return certData;
    }

    public void setCertData(byte[] certData) {
        this.certData = certData;
    }

    public String getCertPasswd() {
        return certPasswd;
    }

    public void setCertPasswd(String certPasswd) {
        this.certPasswd = certPasswd;
    }

    public String getDevice_info() {
        return device_info;
    }

    public void setDevice_info(String device_info) {
        this.device_info = device_info;
    }

    public String getNonce_str() {
        return nonce_str;
    }

    public void setNonce_str(String nonce_str) {
        this.nonce_str = nonce_str;
    }

    public String getPartner_trade_no() {
        return partner_trade_no;
    }

    public void setPartner_trade_no(String partner_trade_no) {
        this.partner_trade_no = partner_trade_no;
    }

    public String getOpenid() {
        return openid;
    }

    public void setOpenid(String openid) {
        this.openid = openid;
    }

    public WxCheckNameEnum getCheck_name() {
        return check_name;
    }

    public void setCheck_name(WxCheckNameEnum check_name) {
        this.check_name = check_name;
    }

    public String getRe_user_name() {
        return re_user_name;
    }

    public void setRe_user_name(String re_user_name) {
        this.re_user_name = re_user_name;
    }

    public Integer getAmount() {
        return amount;
    }

    public void setAmount(Integer amount) {
        this.amount = amount;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public String getSpbill_create_ip() {
        return spbill_create_ip;
    }

    public void setSpbill_create_ip(String spbill_create_ip) {
        this.spbill_create_ip = spbill_create_ip;
    }
}
